package com.aisoback.common;

public class ResultUtils {
    /**
     * 返回成功
     *
     * @param data
     * @param <T>
     * @return
     */
    public static <T> BaseResponse<T> success(T data) {
        return new BaseResponse<>(0, data, "ok", "");
    }

    /**
     * 返回错误
     *
     * @param code
     * @param <T>
     * @return
     */
    public static <T> BaseResponse<T> error(Code code) {
        return new BaseResponse<>(code.getCode(), null, code.getMessage(), code.getDescription());
    }

    /**
     * 返回错误
     *
     * @param code
     * @param message
     * @param description
     * @param <T>
     * @return
     */
    public static <T> BaseResponse<T> error(Code code, String message, String description) {
        return new BaseResponse<>(code.getCode(), null, message, description);
    }

    /**
     * 返回错误
     *
     * @param code
     * @param description
     * @param <T>
     * @return
     */
    public static <T> BaseResponse<T> error(Code code, String description) {
        return new BaseResponse<>(code.getCode(), null, code.getMessage(), description);
    }

    /**
     * 返回错误
     *
     * @param code
     * @param data
     * @param <T>
     * @return
     */
    public static <T> BaseResponse<T> error(Code code, T data) {
        return new BaseResponse<>(code.getCode(), data, code.getMessage(), code.getDescription());
    }

    public static BaseResponse<?> error(int code, String message) {
        return new BaseResponse<>(code, null, message, "");
    }
}
